package hcn.enums;

import hcn.protocol.brandnew.provider.DischargeSettlementRequest;

/**
 * 对外提供服务清单枚举
 *
 * @author neoLin - 2023/08/07 15:17
 **/
public enum ProviderServiceEnum {

    /**
     * 检查报告通知
     * {@link com.bsoft.gol.hcr.service.report.HospitalExamReportService#postPacsReportInfo}
     * {@link hcn.protocol.brandnew.provider.PostPacsReportInfoRequest}
     */
    PostPacsReportInfo("ODS_postPacsReportInfo", "postPacsReportInfo", "hcr.hospitalExamReport",
            "postPacsReportInfo", "hcn.protocol.brandnew.provider.PostPacsReportInfoRequest", "", "检查报告通知"),
    /**
     * 候诊信息通知
     * {@link com.bsoft.gol.hcn.web.ods.controller.HcnNotifyQueueControllerService#notify}
     * {@link hcn.protocol.brandnew.provider.GetQueueInformationRequest}
     */
    getQueueinformation("ODS_getQueueinformation", "getQueueinformation", "hcn.notifyQueue",
            "notify", "hcn.protocol.brandnew.provider.GetQueueInformationRequest", "", "候诊信息通知"),
    /**
     * 检验报告通知推送
     * {@link com.bsoft.gol.hcr.service.report.HospitalLabReportService#labReportAudit}
     * {@link hcn.protocol.brandnew.provider.LabReportAuditRequest}
     */
    LabReportAudit("ODS_LabReportAudit", "labReportAudit", "hcr.hospitalLabReport",
            "labReportAudit", "hcn.protocol.brandnew.provider.LabReportAuditRequest", "", "检验报告通知推送"),
    /**
     * 危急值消息推送
     * {@link com.bsoft.gol.hcr.inhospitalpatient.service.impl.QueryCriticalService#labWarnResultNotify}
     * {@link hcn.protocol.brandnew.provider.LabWarnResultNotifyRequest}
     */
    LabWarnResultNotify("ODS_LabWarnResultNotify", "labWarnResultNotify", "hcr.queryCritical",
            "labWarnResultNotify", "hcn.protocol.brandnew.provider.LabWarnResultNotifyRequest", "", "危急值消息推送"),
    /**
     *
     * {@link com.bsoft.gol.hcr.service.HospitalAppointmentService#dischargeSettlement}
     * {@link DischargeSettlementRequest}
     */
    DischargeSettlement("ODS_DischargeSettlement", "labWarnResultNotify", "hcr.hospitalAppointmentService",
            "dischargeSettlement", "hcn.protocol.brandnew.provider.DischargeSettlementRequest", "", "出院通知")
    ;

    ProviderServiceEnum(String serviceName, String servicePath, String serviceId, String serviceMethod, String requestPath, String responsePath, String serviceIntro) {
        this.serviceName = serviceName;
        this.servicePath = servicePath;
        this.serviceId = serviceId;
        this.serviceMethod = serviceMethod;
        this.requestPath = requestPath;
        this.responsePath = responsePath;
        this.serviceIntro = serviceIntro;
    }

    /**
     * 服务名称
     */
    private String serviceName;
    /**
     * 服务路径
     */
    private String servicePath;
    /**
     * rpc 服务id
     */
    private String serviceId;
    /**
     * rpc方法名称
     */
    private String serviceMethod;
    /**
     * 请求对象包路径
     */
    private String requestPath;

    /**
     * 响应对象包路径
     */
    private String responsePath;

    /**
     * 服务说明
     */
    private String serviceIntro;

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getServicePath() {
        return servicePath;
    }

    public void setServicePath(String servicePath) {
        this.servicePath = servicePath;
    }

    public String getServiceId() {
        return serviceId;
    }

    public void setServiceId(String serviceId) {
        this.serviceId = serviceId;
    }

    public String getServiceMethod() {
        return serviceMethod;
    }

    public void setServiceMethod(String serviceMethod) {
        this.serviceMethod = serviceMethod;
    }

    public String getRequestPath() {
        return requestPath;
    }

    public void setRequestPath(String requestPath) {
        this.requestPath = requestPath;
    }

    public String getResponsePath() {
        return responsePath;
    }

    public void setResponsePath(String responsePath) {
        this.responsePath = responsePath;
    }

    public String getServiceIntro() {
        return serviceIntro;
    }

    public void setServiceIntro(String serviceIntro) {
        this.serviceIntro = serviceIntro;
    }
}
